#pragma once

class ProgramMgr
{
private:
	ProgramMgr();
	~ProgramMgr();

	std::map<std::string, Program *> programs;

	Program * cur = nullptr;
public:
	static ProgramMgr * getInstance();

	Program * get(const std::string & name);
	void create(std::initializer_list<std::string> shader_names, const std::string & alias);
	void use(const std::string & name);
	Program * getCurrent();
};